The Software Patent Puzzle